package com.power.sifa.correction.service;

import org.springframework.data.domain.Page;
import com.power.sifa.correction.model.Crw_rule_person;
import com.power.sifa.correction.model.pageInfo.Crw_rule_personPageInfo;

import java.io.Serializable;
import java.util.List;

/**
 *  预警规则的人员业务层
 */
public interface Crw_rule_personService {

    /**
     *  根据id获取预警规则的人员对象
     */
    Crw_rule_person getById(Serializable id);

    /**
     *  根据传入预警规则的人员对象进行新增或更新操作
     */
    void saveOrUpdate(Crw_rule_person crw_rule_person);

    /**
     *  根据id删除预警规则的人员
     */
    void removeById(String id);

    /**
     *  根据传入条件查询预警规则的人员分页结果
     */
    Page<Crw_rule_person> findAll(Crw_rule_personPageInfo pageInfo);
    
    /**
     * 查询全部预警规则的人员
     */
    List<Crw_rule_person> findAll();
    
     /**
     *  根据id批量删除预警规则的人员
     */
    void removeByIds(List<String> list);
    
     /**
     *  批量保存预警规则的人员
     */
    void saveAll(List<Crw_rule_person> list);


    /**
     * 通过传入的人员数列的id查询对应设置的规则
     * @param personIds
     * @return
     */
    List<Crw_rule_person> getRuleByPersonIds(List<String> personIds);


    /**
     * 通过人员的id查询该人员设置下的规则
     * @param personId
     * @return
     */
    List<Crw_rule_person> getRuleByPersonId(String personId);

    /**
     * 根据规则id删除人员信息
     */
    void removeByRuleId(String ruleId);

    void removeByRuleIds(List<String> list);

    /**
     * 根据规则id查询对应人员id
     */
    List<String> findPersonIdsByRuleId(String ruleId);

    /**
     * 保存规则id及人员id
     */
    void saveAll(String ruleId, List<String> personIds);
}
